1. Field of the Invention
The present invention is related to the field of networking. In particular, the present invention is related to a method and apparatus for communicating using labeled data packets in a network.
2. Description of the Related Art
Due to the growth of networks, scalable and reliable network services that use low latency high bandwidth system area networks (SANs) are being deployed in data centers. FIG. 1 illustrates a network architecture 100 wherein a network 150 such as a local area network (LAN), a wide area network (WAN) or the Internet is connected to a SAN 160 that includes one or more network nodes 140a–140n connected to one or more application servers 120a–120n. Typically, application servers host network services, and communicate with network clients, e.g., client 152, through network nodes using Transmission Control Protocol/Internet Protocol (TCP/IP). Please see Request For Comment (RFC) 793 titled “Transmission Control Protocol DARPA Internet Program Protocol Specification” for details on TCP. Also, please see RFC 791 titled “Internet Protocol DARPA Internet Program Protocol Specification” for details on IP. For each communication session, when a packet, for example, a TCP/IP packet such as a request for information from client 152 on the Internet arrives at a network node, e.g., 140a, address information such as the source IP address, the source TCP port number, the destination IP address and the destination TCP port number is obtained from the packet, and either entered (in the case of a new communication), or searched (in the case of an existing communication) in a forwarding table 250 as illustrated in FIG. 2. The packet may be transmitted to its destination, for example, an application server 120a using the physical address of the destination port.
When the packet arrives at application server 120a, for a particular communication session, address information such as the source IP address, the source TCP port number, the destination IP address and the destination port number is obtained from the packet and either entered or searched in a table similar to the one indicated in FIG. 2. The application server 120a may retrieve the requested information for client 152, and transmit the packet containing the requested information back to network node 140a. 
When the packet with the requested information arrives at the network node 140a, the network node obtains address information from the packet and searches the forwarding table on the network node for the physical port through which the packet is to be forwarded to client 152. Thus, for each packet received from a client for a particular communication session, a search for address information is performed at the network node, at the application server, and again at the network node prior to transmitting the packet back to the client requesting the information. This redundant searching for session information for each packet is inefficient and time consuming.